{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "X=np.empty((100,2))\n",
    "X[:,0]=np.random.uniform(0.,100.,size=100)\n",
    "X[:,1]=0.75*X[:,0]+3.+np.random.normal(0.,10.,size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "PCA(COMPONENTS=1)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from PCA import PCA1\n",
    "pca=PCA1(n_components=1)\n",
    "pca.fit(X)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.77885872, 0.62719941]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pca.components_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "原数据2维，降维变成1维"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100, 1)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_reduction=pca.transform(X)\n",
    "x_reduction.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "处理后的1维数据还原成2维"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100, 2)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_restore=pca.inverse_transform(x_reduction)\n",
    "x_restore.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "绘图观察"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x2332a6b9a00>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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dTy3UXz0ox/F7t278e677/Z9LVq0CNdff33fn3k+Y7d8+fJTlsvv3bsX06ZNAwDMmDEDxcXFA86n3+/Hjh07eD4H6erqgqoOvIRZLBZomgaA53IsYjl3S5cuRVtbG3bu3Nn3nC1btkDTNCxZsiS+BxTX0lyKm1//+te6w+HQn3nmGb2mpka/+eab9ZycHL2xsTHVh2ZqX/rSl3SPx6P//e9/148ePdr31dXV1fecW265RS8rK9O3bNmiv/322/rSpUv1pUuXpvCo00vkqh9d5/kciTfffFO3Wq36Aw88oO/bt0//5S9/qWdlZem/+MUv+p7z0EMP6Tk5OfqLL76ov/fee/oVV1zBJbVRrF69Wp86dWrf8uQXXnhBLygo0L/xjW/0PYfncmjt7e16VVWVXlVVpQPQH374Yb2qqkr/8MMPdV2P7dxdeuml+vz58/UdO3boW7du1c8880wuT55ofvSjH+llZWW63W7XzzvvPH379u2pPiTTAxD16+mnn+57Tnd3t/7lL39Zz83N1bOysvQrr7xSP3r0aOoOOs0MDio8nyPzhz/8QT/77LN1h8OhV1RU6E899dSAxzVN0++++269qKhIdzgc+kc/+lG9trY2RUdrXn6/X7/11lv1srIyPSMjQ585c6Z+11136YFAoO85PJdD+9vf/hb1/5WrV6/WdT22c9fa2qpfd911enZ2tu52u/UbbrhBb29vj/uxKroe0caPiIiIyERYo0JERESmxaBCREREpsWgQkRERKbFoEJERESmxaBCREREpsWgQkRERKbFoEJERESmxaBCREREpsWgQkRERKbFoEJERESmxaBCREREpsWgQkRERKb1/wFFs9RvKSl9dgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X[:,0],X[:,1],color=\"b\",alpha=0.5)\n",
    "plt.scatter(x_restore[:,0],x_restore[:,1],color=\"r\",alpha=0.5)#还原后二维数据可以在一个轴上（主成分）（一维）表示，有缺失\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
